What is git?

서비스 또는 프로그램 개발에 있어서 버전을 관리해주는 시스템.

1. WHAT IS GIT? : 서비스 또는 프로그램 개발에있어서 버전을 관리해주는 시스템.
- 버전관리시스템 : 변경되는 내용만 저장함. / 단점 : 무조건 네트워크를 연결해야함.
- 분산 버전관리시스템 : 내부저장소에 저장하고, 중앙저장소에 올리는 방식
- Add : staging에 저장 / commit : 내부저장소에 저장 / push : 중앙저장소( github ) 에 저장
- GITHUB 은 중앙 저장소를 제공해주는 서비스의 일종.

2. Git의 특징
- 빠른 속도와 성능
- 분산작업 가능
- 데이터의 보장성 ( git의 모든 파일은 암호화 )
- Staging area
- Branch 모델

3. Git의 구조
- Work space : 작업이 이뤄지는 장소
- Index ( = staging ) 
- 내부저장소
- 외부저장소 ( github )

4. Git 주요 명령어
- Init : git 초기화
- Clone : 외부저장소에서 프로젝트 내려받기
- Add : 변경된 내용을 index영역에 올려두는 명령어
- Commit : index 영역에 있는 내용을 내부저장소에 저장
- Status : 현재 git 상태 확인
- Branch : 가지치기 / merge 된 브랜치를 삭제시 -d branch_name / merge 안된 브랜치 삭제 시 -D
- Checkout : 작업 환경 이동 ( branch 끼리 왔다갔다 할 수 있는 명령어 )
- Push : 외부저장소에 데이터 저장
- Pull : 외부저장소에서 최신 변경사항 받아오기
- Merge : master 인 상태에서 다른 branch를 가져오는 것

5. Branch Model
- Work flow ; commit ==> make branch ( develop ) ==> commit in the branch ==> checkout master 
                     ==> merge develop on master branch
6. 되돌리기 - using checkout
- Git checkout "reflog 에 고유번호 값" : 그 시점의 상태로 새로운 브랜치를 파겠다.
  Git checkout -b 브랜치명 : 브랜치 이름 설정

In [ ]: